package com.wg.core.utils;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;

import java.nio.charset.StandardCharsets;

/**
 * @author 少爷123
 */
public class ZipUtils {

    /**
     * 压缩
     */
    public static String gzipEncode(String data, boolean isBase64) {
        if (StrUtil.isEmpty(data)) {
            return null;
        }

        byte[] buffer = ZipUtil.gzip(data, StandardCharsets.UTF_8.name());
        if (isBase64) {
            return Base64.encode(buffer);
        } else {
            return new String(buffer, StandardCharsets.UTF_8);
        }
    }

    /**
     * 解压
     */
    public static String decodeUnGzip(String data, boolean isBase64) {
        if (StrUtil.isEmpty(data)) {
            return null;
        }

        byte[] buffer = isBase64 ? Base64.decode(data) : StrUtil.bytes(data, StandardCharsets.UTF_8.name());
        return ZipUtil.unGzip(buffer, StandardCharsets.UTF_8.name());
    }
}
